package com.yunyao.framework.vo.spreconciliation;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class SpReconciliationOrderVO implements Serializable {

    /**
     * 主键ID
     */
    private String id;

    /**
     * 合同ID
     */
    private String contractId;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 供应商ID
     */
    private String supplierId;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 项目ID
     */
    private String projectId;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 材料ID
     */
    private String orderSn;

    /**
     * 材料编码
     */
    private String orderName;

    /**
     * 订单进度
     */
    private String orderProcess;

    /**
     * 采购单备注
     */
    private String orderDesc;

    /**
     * 采购单附件
     */
    private String attachFiles;

    /**
     * 收货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date receivingTime;

    /**
     * 订单状态:1=未提交,2=确认中,3=已完成
     */
    private String orderStatus;

    /**
     * 供货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date shipmentAt;

    /**
     * 供货人Id
     */
    private String shipmentUserId;

    /**
     * 供货人姓名
     */
    private String shipmentUserName;

    /**
     * 供货说明
     */
    private String shipmentDesc;

    /**
     * 收货凭证
     */
    private String shipmentAttachs;

    /**
     * 供货凭证
     */
    private String shipmentFiles;

    /**
     * 确认时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date takeAt;

    /**
     * 收货人Id
     */
    private String takeUserId;

    /**
     * 收货人姓名
     */
    private String takeUserName;

    /**
     * 收货说明
     */
    private String takeDesc;

    /**
     * 收货凭证
     */
    private String takeAttachs;

    /**
     * 收货凭证
     */
    private String takeFiles;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createdAt;

    /**
     * 创建人
     */
    @TableField(value = "created_by" , fill = FieldFill.INSERT)
    private String createdBy;

    /**
     * 创建部门
     */
    @TableField(value = "create_dept" , fill = FieldFill.INSERT)
    private String createDept;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updatedAt;

    /**
     * 修改人
     */
    @TableField(value = "updated_by" , fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /**
     * 业务状态 1:正常
     */
    @TableField("`status`")
    private Integer status;

    /**
     * 数据删除状态0:未删除,1:删除
     */
    private Integer isDeleted;

    /**
     * 租户ID
     */
    private String tenantId;

    /**
     * 供货状态0未发起供货 1待供货 2供货完成 3供货延迟 4 验收中 5、验收完成
     */
    private Integer supplyStatus;

    /**
     * 对账单主键ID
     */
    private String reconciliationId;

    /**
     * 申请单主键ID
     */
    private String purchaseApplyId;

    /**
     * 含税价格
     */
    private BigDecimal taxTotalPrice;

    /**
     * 不含漱价格
     */
    private BigDecimal notaxTotalPrice;

    /**
     * 供货清单ID
     */
    private String supplyId;

    /**
     * 对账数量
     */
    private BigDecimal reconciliationNum;

    /**
     * 对账金额
     */
    private BigDecimal reconciliationPrice;
    /**
     * 对账周期开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date reconciliationStartDate;

    /**
     * 对账周期结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date reconciliationEndDate;
}
